// 1. 函数类型表达式
type BarType = (num1: number) => number

// 2. 函数的调用签名
interface IBar {
  name: string,
  age: number
  // 使用签名：(参数列表): 返回值类型
  (num1: number): number
}
const bar: IBar = (num1: number): number => {
  return 123
}
bar.name = '张三'
bar.age = 18
bar(1)

// 开发中如何选择
// 1. 如果只是描述函数类型本身(函数可以被调用),使用函数类型表达式
// 2. 如果在描述函数作为对象可以被调用，同时也有其他属性，使用函数签名
export {}